package cn.iocoder.yudao.module.system.controller.admin.studentdashboard.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

@Schema(description = "管理后台 - 学生考试对比查询 Request VO")
@Data
public class StudentExamComparisonReqVO {

    @Schema(description = "学生ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
    @NotNull(message = "学生ID不能为空")
    private Long studentId;

    @Schema(description = "考试ID列表", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1, 2, 3]")
    @NotEmpty(message = "考试ID列表不能为空")
    @Size(min = 2, max = 10, message = "考试对比数量应在2-10之间")
    private List<Long> examIds;

    @Schema(description = "对比维度", example = "ALL")
    private String comparisonDimension = "ALL"; // ALL, TOTAL_SCORE, SUBJECT_SCORE, RANKING

    @Schema(description = "是否包含详细科目对比", example = "true")
    private Boolean includeSubjectDetails = true;

    @Schema(description = "是否包含排名变化", example = "true")
    private Boolean includeRankingChange = true;

    @Schema(description = "是否包含趋势分析", example = "true")
    private Boolean includeTrendAnalysis = true;

}
